package com.text.day2_3;

/**
 * 概念：接口相当于特殊的抽象类，定义方式、组成部分与抽象类类似。使用interface关键字定义接口。
 * 特点：
 * ● 没有构造方法，不能创建对象。
 * ● 只能定义：公开静态常量、公开抽象方法。
 *
 * 与抽象类
 * 相同点：
 * ● 不能创建对象。
 * ● 可以作为引用类型。
 *
 * 不同点：
 * ● 所有属性都是公开静态常量，隐式使用public static final修饰。
 * ● 所有方法都是公开抽象方法，隐式使用public abstract修饰。
 * ● 没有构造方法、动态代码块、静态代码块。
 */
public class AnimalJie implements Comparable<AnimalJie>,Swim{       // 继承接口，接口类似抽象类，可以说是实现接口
    private String name;

    private String type;

    private String sex;

    private int age;

    private int hungry=10; // 动物的饥饿值

    public AnimalJie() {
    }

    public AnimalJie(String name, String type, String sex, int age) {
        this.name = name;
        this.type = type;
        this.sex = sex;
        this.age = age;
    }

    // 实例方法一般写在构造方法后面

    public void eat(){
        System.out.println(name+"在吃饭");
        this.hungry = this.hungry - 1;
    }

    public void sleep(){
        System.out.println(name+"在睡觉");
    }



    //一般把setter和getter放到类的最后
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getHungry() {
        return hungry;
    }

    public void setHungry(int hungry) {
        this.hungry = hungry;
    }

    @Override
    public String toString() {
        return "AnimalJie{" +
                "name='" + name + '\'' +
                ", type='" + type + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", hungry=" + hungry +
                '}';
    }



    @Override
    public int compareTo(AnimalJie o) {
        return 0;
    }

    @Override
    public void swimmimg() {

    }
}
